class: center, middle, inverse, title-slide .title[ #
Here Comes the STRAIN:
Analyzing Defensive Pass Rush in American Football with Player Tracking Data
] .subtitle[ ## Quang Nguyen ] .institute[ ### Department of Statistics & Data Science
Carnegie Mellon University
2023 NESSIS ] .date[ ###
@qntkhvn
  Â
qntkhvn   Â
qntkhvn.netlify.app ] --- <!-- layout: true --> <!-- <div class="my-footer"><span></span></div> --> --- count: false <img src="data:image/png;base64,#rubber.png" width="64%" style="display: block; margin: auto;" /> --- # football meets materials science <img src="data:image/png;base64,#analogy2.png" width="110%" style="display: block; margin: auto;" /> --- count: false # football meets materials science <img src="data:image/png;base64,#analogy3.png" width="110%" style="display: block; margin: auto;" /> --- count: false # football meets materials science <img src="data:image/png;base64,#analogy4.png" width="110%" style="display: block; margin: auto;" /> --- # measuring pressure at the frame-level **Definition** ( `\(\text{STRAIN}\)`; informal) For every pass rusher at each frame within a play, calculate -- * `\(d\)`: distance between pass rusher and QB -- * `\(v\)`: velocity at which pass rusher is moving toward QB -- * estimated by rate of change in distance between current & previous frames -- * `\(\text{STRAIN} = \displaystyle- \frac{v}{d}\)` --- # Advantages of STRAIN * Simple, computation friendly: 2 features! #PutThatInYourXGBoost -- * Interpretable: 1/STRAIN <br> `\(\rightarrow\)` time required for a pass rusher to get to QB with current velocity & distance -- * Scalable: can be applied to every passing play (minus trick plays) -- * Continuous-time within-play metric * Previous metrics are either discrete or based on subjective judgment --- count: false class: center, middle <p style="font-size:2.5em; color: #C41230"> <b> Real-game illustration<br>of STRAIN </b> </p> --- # data: nfl big data bowl 2023 Player tracking data for the first 8 weeks of the 2021 regular season Example play: Raiders vs Broncos (week 6) – T. Bridgewater sacked by M. Crosby <img src="data:image/png;base64,#track.png" width="80%" style="display: block; margin: auto;" /> --- # example play for Raiders DE Maxx Crosby <img src="data:image/png;base64,#play_ini.gif" width="85%" style="display: block; margin: auto;" /> --- <img src="data:image/png;base64,#ex_play.gif" width="62%" style="display: block; margin: auto;" /> --- count: false class: center, middle <p style="font-size:2.5em; color: #C41230"> <b> Statistical properties<br>of STRAIN </b> </p> --- # Positional strain curves <img src="data:image/png;base64,#pos.png" width="70%" style="display: block; margin: auto;" /> --- # play outcome strain curves <img src="data:image/png;base64,#outcomes.png" width="99%" style="display: block; margin: auto;" /> --- # STRAIN is predictive of pressure <img src="data:image/png;base64,#cor_pressure.png" width="60%" style="display: block; margin: auto;" /> --- # STRAIN is more predictive of pressure than pressure itself <img src="data:image/png;base64,#predictability.png" width="100%" style="display: block; margin: auto;" /> --- # STRAIN is highly stable over time <img src="data:image/png;base64,#stability.png" width="60%" style="display: block; margin: auto;" /> --- count: false class: center, middle <p style="font-size:2.5em; color: #C41230"> <b> Multilevel model for<br>play-level STRAIN </b> </p> --- # Multilevel model: Specification - Response: average STRAIN for pass rusher at the play-level - Random effects: pass rusher, pass blocker, defensive team, offensive team - Fixed effects: number of blockers, position of blocker and rusher, play-context (down, yards to go, current yardline) `$$\small \begin{aligned} \overline{\text{STRAIN}}_{ij} &\sim N(R_{j[i]} + B_{b[ij]} + D_{d[i]} + O_{o[i]} + \mathbf{x_{ij}} \boldsymbol{\beta}, \sigma^2); \text{ } i = 1, \dots, n \text{ plays} \\ R_{j} &\sim N(\mu_R, \sigma^2_R); \text{ } j = 1, ..., \text{# of rushers} \\ B_{b} &\sim N(\mu_B, \sigma^2_B); \text{ } b = 1, ..., \text{# of blockers} \\ D_{d} &\sim N(\mu_D, \sigma^2_D); \text{ } d = 1, ..., \text{# of defenses} \\ O_{o} &\sim N(\mu_O, \sigma^2_O); \text{ } o = 1, ..., \text{# of offenses} \end{aligned}$$` --- # Multilevel model: Resampling -- - Capture uncertainty in the estimates for the player random effects -- - It's unrealistic to bootstrap individual plays -- - Instead, bootstrap team drives within games --- # Multilevel model: Pass rusher rankings <img src="data:image/png;base64,#boot_rank.png" width="76%" style="display: block; margin: auto;" /> --- # summary and future work <!-- #HereComesTheSTRAIN --> Introducing STRAIN: a simple and interpretable pass rush metric inspired by materials science - Continuous-time within-play measure of defensive pressure - Great predictability of pressure and stability over time - Identifies top-level pass rushers -- Next steps - How about pass block? - Player STRAIN curves as functions --- # acknowledgements: ron and greg .pull-left[ <img src="data:image/png;base64,#https://pbs.twimg.com/profile_images/1614452588258230273/0QToRrz__400x400.jpg" width="60%" style="display: block; margin: auto;" /> <center> Ronald Yurko<br>Carnegie Mellon University </center> ] .pull-right[ <img src="data:image/png;base64,#https://raw.githubusercontent.com/qntkhvn/qblog/main/projects/greg.gif" width="64%" style="display: block; margin: auto;" /> <center> Gregory J. Matthews<br>Loyola University Chicago </center> ] --- # acknowledgements: big data bowl .pull-left[ <img src="data:image/png;base64,#bdb.png" width="60%" style="display: block; margin: auto;" /> ] .pull-right[ <br> <br> <center><big><b><font color="#C41230">Check out<br>#BigDataBowl 2024!</font></b></big></center> ] --- # Related links * Paper: [arxiv.org/abs/2305.10262](https://arxiv.org/abs/2305.10262) * GitHub: [github.com/getstrained](https://github.com/getstrained) -- <p style="font-size:1.2em; color: #C41230"> <b> Follow the #STRAINtrain to #CMSAC (November 10—11, 2023) </b></p> * Register at [stat.cmu.edu/cmsac/conference/2023](https://www.stat.cmu.edu/cmsac/conference/2023) * Featuring a Big Data Bowl "behind the scenes" workshop on STRAIN -- <center> <p style="font-size:1.25em; color: #C41230"> <b> Cheers. </b> </p> </center>